package errors

// ServiceError 业务错误（Service 层统一错误类型）
type ServiceError struct {
	Code    int         // 错误码
	Message string      // 错误消息（英文，用于日志）
	Data    interface{} // 附加数据
}

// Error 实现 error 接口
func (e *ServiceError) Error() string {
	return e.Message
}

// NewServiceError 创建业务错误
func NewServiceError(code int, message string) *ServiceError {
	return &ServiceError{
		Code:    code,
		Message: message,
	}
}

// NewServiceErrorWithData 创建带数据的业务错误
func NewServiceErrorWithData(code int, message string, data interface{}) *ServiceError {
	return &ServiceError{
		Code:    code,
		Message: message,
		Data:    data,
	}
}
